home *** CD-ROM | disk | FTP | other *** search
/ Die Speccy' 97 / Die Speccy' 97.iso / amiga_system / the_aminet / util / boot / avwm.lzh / avwm-0.4 / callbacks.h < prev    next >
C/C++ Source or Header  |  1994-08-08  |  892b  |  33 lines

  1. /* callbacks.h */
  2.  
  3. #include <exec/lists.h>
  4. #include <intuition/intuition.h>
  5. #include <pragmas/intuition_pragmas.h>
  6.  
  7. #define EmptyMinList(x) (((x)->mlh_TailPred)==(struct MinNode *)(x))
  8. #define AddCallback(win,fun,class) AddPortCallback((win)->UserPort,fun,class)
  9. #define Malloc(x) (x *)malloc(sizeof(x))
  10.  
  11. typedef int (*callback) (struct IntuiMessage *msg, struct Callback *cb);
  12.  
  13. struct CbPort {
  14.   struct MinNode    node;
  15.   struct MinList    callbacks;
  16.   struct MsgPort    *port;
  17.   ULONG            sig;
  18. };
  19.  
  20. struct Callback {
  21.   struct MinNode   node;
  22.   callback       function;
  23.   ULONG           class;
  24.   struct CbPort*   cbport;
  25. };
  26.  
  27. void AppMainLoop (void);
  28. struct Callback *AddPortCallback (struct MsgPort *port, callback fun, ULONG class);
  29. void SetSignalCallback (ULONG signal_mask, callback fun);
  30. void RemoveCallback (struct Callback *cb);
  31. void RemoveAllCallbacks (void);
  32. void InitListHeader (struct MinList *list);
  33.